const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const session = require('express-session');
const db = require('./database');  
const studentRoutes = require('./routes/studentRoutes');

const app = express();
const port = 3000;

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));

// 会话设置
app.use(session({
  secret: 'your-secret-key', 
  resave: false,
  saveUninitialized: true,
}));

app.use('/students', studentRoutes);

// 登录接口
app.post('/login', async (req, res) => {
    const { username, password } = req.body;
    try {
        // 使用回调函数处理 db.query() 查询结果
        db.query('SELECT * FROM users WHERE username = ?', [username], (err, results) => {
            if (err) {
                console.error(err);
                return res.status(500).send('服务器错误');
            }

            // 假设查询到的只有一个用户，取第一个结果
            const user = results[0];

            if (user && user.password === password) {
                // 登录成功，将用户信息存入 session
                req.session.user = user;
                res.redirect('/students'); // 登录成功后重定向到学生页面
            } else {
                res.status(401).send('用户名或密码错误');
            }
        });
    } catch (err) {
        console.error(err);
        res.status(500).send('服务器错误');
    }
});

// 注册接口
app.post('/register', async (req, res) => {
    const { username, password } = req.body;
    try {
        // 使用回调函数处理 db.query() 插入操作
        db.query('INSERT INTO users (username, password) VALUES (?, ?)', [username, password], (err, results) => {
            if (err) {
                console.error(err);
                return res.status(500).send('服务器错误');
            }

            res.send('注册成功');
        });
    } catch (err) {
        console.error(err);
        res.status(500).send('服务器错误');
    }
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器启动 http://localhost:${port}`);
});
